<?php
include_once "../function/common.php";
//数组 [ key1=>value1, key2=>value2, ...]
//若未指定key，将自动使用之前用过的最大int键名加上1作为新的键名, 第一个整数key值是0
$a=[111,3.5,100=>"Hello", true];
var_dump($a);
//key可以是integer或者string，value可以是任意类型
$a=['name'=>'张三', 'age'=>18, 'sex'=>'男'];
print_r($a);
//若多个元素使用相同键名，那么只有最后一个会被使用，其它的元素都会被覆盖
$a=['24jsj1','name'=>'张三', 0=>'24jsj2', 'name'=>'张三丰', ];
print_r($a);

//key值只能是整数或string，其他类型需要转换
$array = array(
    1 => 'a',
    '1' => 'b', // 值 "a" 会被 "b" 覆盖
    1.5 => 'c', // 值 "b" 会被 "c" 覆盖
    -1 => 'd',
    '01' => 'e', // 由于这不是整数字符串，因此不会覆盖键名 1
    '1.5' => 'f', // 由于这不是整数字符串，因此不会覆盖键名 1
    true => 'g', // 值 "c" 会被 "g" 覆盖
    false => 'h',
    '' => 'i',
    null => 'j', // 值 "i" 会被 "j" 覆盖
    'k', // 值 “k” 的键名被分配为 2。这是因为之前最大的整数键是 1
    2 => 'l', // 值 "k" 会被 "l" 覆盖
);
p($array);

//数组的遍历显示
$a=[111,222,333,"Hello", true];
for($i=0, $len=count($a); $i<$len; ++$i){
    echo $i, '. ', $a[$i], "\n";
}
echo "----------------------------------\n";
$a=[111,222,10=>333,"Hello", true];
foreach($a as $v){
    echo $v,"\n";
}
echo "----------------------------------\n";
$a=[111,'name'=>'zhangsan',345,'age'=>18];
foreach($a as $key=>$value){
    echo $key, ' ---> ', $value, "\n";
}